class_name State
extends Node


@warning_ignore("unused_private_class_variable")
var _root: StateMachine:
    get:
        var parent := get_parent()
        if parent is not StateMachine: return null
        return parent

@warning_ignore("unused_signal")
signal switch(next: StringName)


func _enter() -> void: pass
func _exit() -> void: pass
func _update(_delta: float) -> void: pass
func _fixed_update(_delta: float) -> void: pass
func _input(_event: InputEvent) -> void: pass
